package com.itcast.stargraph.service;

import com.itcast.stargraph.dto.request.Text2ImageReqDto;
import com.itcast.stargraph.dto.respone.Text2ImageResDto;
import com.itcast.stargraph.pojo.ComfyuiTask;

/**
 * 文生图服务
 *
 * @Author katana
 * @Date 2025/6/11 14:18
 */
public interface TextToImageService {
    /**
     * 获取ComfyuiTask任务实例
     * @param dto
     * @return
     */
    ComfyuiTask getComfyuiTask(Text2ImageReqDto dto);
    /**
     * 添加ComfyuiTask任务实例到队列中排队
     * @param task
     * @return
     */
    ComfyuiTask addQueueTask(ComfyuiTask task);
    
    
    /**
     * 从任务队列中获取ComfyuiTask任务实例
     * @return
     */
    ComfyuiTask popQueueTask();
    
    /**
     * 添加comfyui流程任务（工作流任务）
     * @param dto
     * @return
     */
    Text2ImageResDto prompt(Text2ImageReqDto dto);
    
    
    /**
     * 缓存最开始的任务
     * @param prompId 任务ID
     * @param task  最先开始的任务
     */
    void addStartedTask(String prompId, ComfyuiTask task);
    
    /**
     * 从缓存取出最开始的任务
     * @param prompId 任务ID
     */
    ComfyuiTask getStartedTask(String prompId);
}
